#include <iostream>
#include <thread>
#include <future>

void taskAdd(int op1, int op2, std::promise<int>& prom)
{
    prom.set_value(op1 + op2); //向prom设置的值，可以从fut中取到
}

int main()
{
    std::promise<int> prom;
    std::future<int> fut = prom.get_future(); //建立同步关联关系
    std::thread t(taskAdd, 11, 22, std::ref(prom)); //prom传参强制取引用
    int sum = fut.get();

    std::cout << "sum: " << sum << std::endl;

    t.join();
    return 0;
}